package com.heima.article.controller.v1;

import com.heima.article.service.AIChatService;
import com.heima.article.service.ApArticleService;
import com.heima.article.service.ArticleClassifyService;
import com.heima.article.service.ArticleRecommendService;
import com.heima.model.article.dtos.ArticleQuestion;
import com.heima.model.article.dtos.UserDto;
import com.heima.model.common.dtos.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName RecommendController
 * @Description TODO
 * @Author Neo
 * @Date 2024/3/6 23:00
 * @Version 1.0
 */
@RestController
@RequestMapping("api/v1/recommend")
public class RecommendController {

    @Autowired
    private ApArticleService apArticleService;
    @Autowired
    private AIChatService aiChatService;
    @Autowired
    private ArticleClassifyService articleClassifyService;
    @Autowired
    private ArticleRecommendService articleRecommendService;
    @PostMapping("/get")
    public ResponseResult getRecommend(@RequestBody UserDto dto){
        return articleRecommendService.getRecommend(Long.valueOf(dto.getUserId()));
    }

    @PostMapping("/search")
    public ResponseResult searchRecommend(@RequestBody ArticleQuestion articleQuestion){
        return apArticleService.search(articleQuestion);
    }
    @PostMapping("/cal")
    public ResponseResult calRecommend(@RequestBody Long userId){
        return articleRecommendService.calRecommend(userId);
    }

    @PostMapping("/template")
    public ResponseResult calRecommend(){
        String template="问题类型: 你在学习哪个编程语言或概念？（例如：Python、数据结构、算法等）\n" +
                "具体问题: 描述你在编程过程中遇到的具体问题或困惑，包括错误信息（如果有的话）。\n" +
                "上下文: 提供一些背景信息，比如你正在尝试完成的作业任务或者你在编写哪个部分的代码。\n" +
                "期望答案: 你希望得到的帮助，是解释、代码示例、还是解决问题的方法建议？\n" +
                "例如：“我在学习Python，遇到了关于for循环的问题。当我尝试遍历列表时，代码显示’NameError: name ‘my_list’ is not defined’。我在main函数中定义了my_list，但似乎在循环里无法访问。能帮我看看是什么问题吗？”";
        return ResponseResult.okResult(template);
    }

}
